/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.faesa.acervo.view.mbeans;

import br.faesa.acervo.business.ejb.EmprestimoDAO;
import br.faesa.acervo.business.ejb.LivroDAO;
import br.faesa.acervo.entity.Emprestimo;
import br.faesa.acervo.entity.Livro;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author aluno.faesa
 */
@ManagedBean(name = "emprestimoExclusaoForm")
@ViewScoped
public class EmprestimoExclusaoFormBean implements Serializable {

    private Long matricula;
    
    private Livro livro;
    
    private List<Emprestimo> emprestimosAgendados;
    
    @EJB
    private EmprestimoDAO emprestimoDAO;
    
    @EJB
    private LivroDAO livroDAO;
    
    public EmprestimoExclusaoFormBean() { }
    
    @PostConstruct
    public void init()
    {
        
        final String SELECTED_ID = "idLivro";
        
        Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        
        
        if(paramMap.get(SELECTED_ID) != null){
            
            Long idLivro = Long.valueOf(paramMap.get(SELECTED_ID));
            
            this.livro = livroDAO.find(idLivro);
        }else{
            FacesUtils.fatal("Acesse a página a partir da seleção de um Livro!");
        }

    }
    
    public void onBotaoOKClick()
    {
    
        HttpServletRequest http = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        Emprestimo emp = (Emprestimo) http.getAttribute("emp");

        this.emprestimoDAO.remove(emp);
        
        this.emprestimosAgendados.remove(emp);
        
        FacesUtils.info("Reserva Excluída com sucesso!");
    }
    
    public List<Emprestimo> getEmprestimosAgendados(){
        if(this.emprestimosAgendados == null){
            this.emprestimosAgendados = this.emprestimoDAO.findEmprestimosByLivro(livro, false);
        }
        
        return this.emprestimosAgendados;
    }

    public Long getMatricula() {
        return matricula;
    }

    public void setMatricula(Long matricula) {
        this.matricula = matricula;
    }

}
